#ifndef STATUSBAR_H
#define STATUSBAR_H

#include <wx/statusbr.h>
#include <wx/gauge.h>

namespace gui {

class StatusBar
    : public wxStatusBar
{
public:

    //////////////////////////////////////////////////////////////////////////
    // INITIALIZATION
    //////////////////////////////////////////////////////////////////////////

    StatusBar(wxWindow *parent);
    virtual ~StatusBar();
    static StatusBar& get();

    //////////////////////////////////////////////////////////////////////////
    // GUI EVENTS
    //////////////////////////////////////////////////////////////////////////

    void onSize(wxSizeEvent& event);

    //////////////////////////////////////////////////////////////////////////
    // GET/SET
    //////////////////////////////////////////////////////////////////////////

    int getNumberOfStatusBars() const;
    void setDebugText(wxString text = "");
    void setProcessingText(wxString text = "");
    void setQueueText(wxString text = "");
    void showProgressBar(int max);
    void showProgress(int value);
    void hideProgressBar();

private:

    //////////////////////////////////////////////////////////////////////////
    // MEMBERS
    //////////////////////////////////////////////////////////////////////////

    wxGauge* mProgress;

};

} // namespace

#endif // STATUSBAR_H